Typical graphic user interface (GUI) programming techniques are limited to statically and/or explicitly controlling the bounds of a display. The bounds, or limits, over which the display is controllable is often referred to as the display's layout. Static/explicit programming typically requires that specific values be used to define the boundaries of a display, and each time an update is to be made to the layout of the display, all the values need to be recalculated with explicit code. This adversely affects the implementation of scenarios in which the control bounds are to be dynamic, or at least appear dynamic to the user, because of the extensive amount of code required to manage this layout. This code is often burdensome to the programmer because of its complexity and because writing this code can be time consuming. This type of code can also adversely affect the user because the user may have to wait too long for the code to perform its function (i.e., to update the layout), thus negating the dynamic characteristic the code was designed to exhibit. These problems are exacerbated in situations where the potential exists for changes to the layout of one portion of a display to affect the layout of other portions of the display. These problems are also evident in situations in which an extensible model is desired. That is, in situations wherein developers can add new elements having their own dynamic layout, or use those provided by third parties.
Additionally, controls that are written to support dynamic adjustment of bounds are often error prone, and inefficient. An example of a scenario in which this type of code presents severe disadvantages is the increasingly common use of browser like interfaces to dynamically control the layout of a display. Browser-like interfaces extensively utilize text, localization (locale-specific text and images), and data-driven applications (dynamic updates and dynamic creation of user interfaces), and thus present many opportunities to make dynamic changes to the layout of display content. Existing techniques for enabling these dynamic changes suffer from the above-mentioned disadvantages of being error-prone, inefficient, and being difficult to implement.
Therefore, the ability to dynamically control the layout of displays without suffering the above disadvantages is desired.